/* Nama		: Karina Novita Suryani(23512187), Ni Made Satvika Iswari (23512077) */
/* File		: Time.h*/
/* Tanggal 	: 24 September 2012*/

#ifndef time_H
#define time_H

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define MAX_CHAR 100

typedef struct
{
	int HH;
	int MM;
	int SS;
} Time;



/* prototype primitif type jam */
/* Kelompok validasi terhadap type */
int IsValidTime (int H, int M, int S);
/* 	Menuliskan true jika H, M, S dapat membentuk Jam yang valid */

/* Konstruktor */
Time MakeTime (int HH, int MM, int SS);
/* 	Membentuk sebuah jam dari komponen-komponennya yang valid */
Time MakeTimefromStr(char hour[], char min[], char sec[]);
/* 	Membentuk sebuah jam dari komponen-komponennnya yang bertipe string */

/* Selektor */
#define GetHour(J) (J).HH
/* 	Mengirimkan bagian HH (Hour) dari jam */
#define GetMinute(J) (J).MM
/* 	Mengirimkan bagian MM (menit) dari jam */
#define GetSecond(J) (J).SS
/* 	Mengirimkan bagian SS (detik) dari jam */

/* Pengubah Nilai Komponen*/
void SetHour (Time *T);
/*proses membaca inputa user untuk mengubah HH*/
/* I.S. Sembarang
   F.S. HH dari T sudah diset
*/

void SetMin (Time *T);
/*proses membaca inputa user untuk mengubah MM*/
/* I.S. Sembarang
   F.S. MM dari T sudah diset
*/

void SetSec (Time *T);
/*proses membaca inputa user untuk mengubah SS*/
/* I.S. Sembarang
   F.S. SS dari T sudah diset
*/

void BacaTime (Time *T);
/*prosedur membaca inputan user untuk membuat T
	I.S -
	F.S T telah terbentuk
*/

void TulisTime (Time T);
/*prosedur menuliskan ke layar isi T
	I.S T is Defined
	F.S T telah terulis di layar
*/

int EqTime (Time T1,Time T2);
/*mengembalikan nilai 1 apabila T1==T2*/

int isGreaterThan (Time T1, Time T2);
/*mengembalikan nilai 1 apabila T1 > T2*/

int isLessThan (Time T1, Time T2);
/*mengembalikan nilai 1 apabila T1 < T2*/

char* TimeToString(Time T);
/*mengembalikan time dalam format hh:mm:ss */

   
#endif
